home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / dieroll < prev    next >
Text File  |  1995-03-31  |  2KB  |  130 lines

  1. %%HP: T(3)A(D)F(.); 
  2. DIR 
  3.   DC 
  4.     \<< 1 3 
  5.       START DEPTH 
  6. DUP 
  7.         IF 
  8.         THEN ROLL 
  9.         END DROP 
  10.       NEXT DIE TYPE 
  11.       IF == 
  12.       THEN DICE 
  13.       ELSE DIE SIZE 
  14.         IF == 
  15.         THEN XDIE 
  16.         ELSE DICE 
  17.         END 
  18.       END 
  19.     \>> 
  20.   DICE 
  21.     \<< 5 
  22.       IF FC? 
  23.       THEN CL\GS 
  24.       END DEPTH DUP 
  25.       IF NOT 
  26.       THEN DIE 
  27.         IFERR LIST\-> 
  28. DROP 
  29.         THEN 6 2 0 
  30.         END 
  31.       ELSE \->LIST 
  32. CHK 
  33.       END \-> c d e 
  34.       \<< CLEAR 1 d 
  35.         START c 
  36. RDMZR \GS+ 
  37.         NEXT RCL\GS 
  38. ARRY\-> DROP d \->LIST 
  39. e TOT e + 5 
  40.         IF FC? 
  41.         THEN '\GSDAT' 
  42. PURGE 
  43.         END 
  44.       \>> 
  45.     \>> 
  46.   XDIE 
  47.     \<< DEPTH 
  48.       IF NOT 
  49.       THEN 
  50.         IFERR DIE 
  51. LIST\-> 
  52.         THEN 
  53. "ERROR- 
  54. NO ENTRY" 
  55. CLLCD 1 DISP 1200 
  56. .4 BEEP 1400 .4 
  57. BEEP 4 WAIT KILL 
  58.         ELSE 4 
  59.           IF \=/ 
  60.           THEN DICE 
  61. KILL 
  62.           END 
  63.         END 
  64.       ELSE DEPTH 1 
  65.         IF == 
  66.         THEN DIE 
  67. SIZE 4 
  68.           IF == 
  69.           THEN 
  70. 'DIE' SWAP 4 SWAP 
  71. PUT DIE LIST\-> DROP 
  72.           END 
  73.         END 
  74.       END ASK \-> a 
  75.       \<< 5 SF CL\GS 1 
  76.         START DICE 
  77. CLEAR 
  78.         NEXT 5 CF ' 
  79. DIE(2)' EVAL a SWAP 
  80. 2 \->LIST '\GSDAT' SWAP 
  81. RDM \GSDAT '\GSDAT' TRN 
  82. TOT 'DIE(3)' EVAL { 
  83. a } SWAP CON + 4 
  84.         IF FS? 
  85.         THEN MIN\GS - 
  86.         END ARRY\-> 
  87. DROP a \->LIST DIE a 
  88. + 'DIE' STO 'DIE(3) 
  89. ' EVAL SWAP '\GSDAT' 
  90. PURGE 2 PICK 
  91.         IF NOT 
  92.         THEN 2 ROLL 
  93. DROP 
  94.         END 
  95.       \>> 
  96.     \>> 
  97.   RDMZR 
  98.     \<< \-> a 
  99.       \<< RAND a * IP 
  100. 1 + 
  101.       \>> 
  102.     \>> 
  103.   DIE { 6 3 0 5 } 
  104.   CHK 
  105.     \<< \-> a 
  106.       \<< CLEAR a { { 
  107. 1 0 } { 0 } { } } a 
  108. SIZE 
  109.         IFERR GET 
  110.         THEN DROP a 
  111. 1 3 SUB { } 
  112.         END + DUP 
  113. 'DIE' STO LIST\-> 
  114. DROP 
  115.       \>> 
  116.     \>> 
  117.   ASK 
  118.     \<< { { "YES" 
  119.       \<< 4 SF CONT 
  120.       \>> } { "NO" 
  121.       \<< 4 CF CONT 
  122.       \>> } } TMENU 
  123. "Drop lowest roll?" 
  124. PROMPT 0 MENU 
  125.     \>> 
  126. END 
  127.